package com.lhy.admin.mp.web;

import com.lhy.admin.common.mvcplus.entity.BasePage;
import com.lhy.admin.common.mvcplus.entity.RespPage;
import com.lhy.admin.common.mvcplus.entity.RespResult;
import com.lhy.admin.common.secure.authentication.Authentication;
import lombok.SneakyThrows;
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.bean.material.WxMpMaterialNews;
import me.chanjar.weixin.mp.bean.material.WxMpMaterialNewsBatchGetResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * <pre>
 * </pre>
 * 素材
 *
 * @author Binary Wang(https://github.com/binarywang)
 */
@RestController
@RequestMapping("/wechat/media")
@Authentication
public class WxMediaController {

    @Autowired
    private WxMpService wxService;

    @SneakyThrows
    @PostMapping("materialNewsBatchGet")
    public RespResult<RespPage<WxMpMaterialNewsBatchGetResult.WxMaterialNewsBatchGetNewsItem>> materialFileBatchGet(@RequestBody BasePage basePage) {
        int offset = basePage.getPage() > 0 ? (basePage.getPage() - 1) * basePage.getRows() : 0;
        WxMpMaterialNewsBatchGetResult wxMpMaterialNewsBatchGetResult = wxService.getMaterialService().materialNewsBatchGet(offset, basePage.getRows());
        RespResult<RespPage<WxMpMaterialNewsBatchGetResult.WxMaterialNewsBatchGetNewsItem>> ok = RespResult.ok();
        RespPage<WxMpMaterialNewsBatchGetResult.WxMaterialNewsBatchGetNewsItem> respPage = new RespPage<>(basePage.getPage(), basePage.getRows(), wxMpMaterialNewsBatchGetResult.getTotalCount(), wxMpMaterialNewsBatchGetResult.getItems());
        return ok.setData(respPage);
    }


    @GetMapping("wxMpMaterialNews")
    @SneakyThrows
    public RespResult<WxMpMaterialNews> materialNewsInfo(String mediaId) {
        WxMpMaterialNews wxMpMaterialNews = wxService.getMaterialService().materialNewsInfo(mediaId);
        return RespResult.<WxMpMaterialNews>ok().setData(wxMpMaterialNews);
    }
}
